import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

import java.io.IOException;

public class Demo1Test {
    public static void main(String[] args) throws IOException {
        // 创建HBase 配置对象
        Configuration conf = HBaseConfiguration.create();
        // 设置zookeeper地址，可以通过zk连接HBase
        conf.set("hbase.zookeeper.quorum", "master:2181,node1:2181,node2:2181");
        Connection conn = null;
        try {
            // 建立HBase连接
            conn = ConnectionFactory.createConnection(conf);
            // 传教Admin对象
            Admin admin = conn.getAdmin();
            // admin 相当于HBase的管理员
            // 创建表 传入表名(TableName.valueOf())
            HTableDescriptor testJavaAPI = new HTableDescriptor(TableName.valueOf("testJavaAPI"));
            // 创建列簇 传入列簇名
            HColumnDescriptor cf1 = new HColumnDescriptor("cf1");
            // 对列簇进行一些配置
            cf1.setMaxVersions(5); // 设置版本号
            cf1.setTimeToLive(30); // 设置TTL时间
            // 将创建好的列簇加入表
            testJavaAPI.addFamily(cf1);
            // 使用admin对象创建表
            admin.createTable(testJavaAPI);
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            if (conn != null) {
                conn.close();
            }
        }
    }
}
